/**
 * Affiche le libelle, la PM et le deltaPM de la zone ou de la region.
 */
function afficheLibNiveauRegion() {
	
	$.ajax({ 
 		traditional: true, 
 		type: 'POST', 
 		url: './libNiveauCarto.do', 
 		target: "_blank", 
 		data : {}, 
 		error: function () {},
 		success: function(result) { 
 			$('#zoneNavId').html(result.nivGeogCartoR + " : " + result.libGeogCartoR);
 			$('#regionCanvasPmId').html("PM " + parseFloat(result.pmGeogCartoR).toFixed(1) + " - ");
 			$('#regionCanvasDeltaPMId').html("&Delta;PM " + parseFloat(result.deltapmGeogCartoR).toFixed(1) + " - ");
 			$('#regionCanvasVolId').html("VOL " + parseFloat(result.volGeogCartoR).toFixed(0) + " - ");
 			$('#regionCanvasDeltaVolId').html("&Delta;VOL " + parseFloat(result.deltavolGeogCartoR).toFixed(0) + " - ");
 			$('#regionCanvasEvolId').html("EVOL " + parseFloat(result.evolGeogCartoR).toFixed(1));
 		}
 	});
	
}

/**
 * Dessine une region ou une zone.
 */
function dessinerRegion(nivGeog, idGeogArg, calculPalettes) {
	
	var source = 	$('#sourceId').get(0).value;
	var periode = 	$('#periodId').get(0).value;
	var unite = 	$('#unitId').get(0).value;
	
	var indicateur		= ""; 
	var indicateur1		= ""; 
	var indicateur2		= ""; 
	if ($('#analyseCartoHieId').get(0).checked) {
		indicateur		= $('#carto-indicateur-id').get(0).value; 
	} else if ($('#analyseCartoIsoId').get(0).checked) {
		indicateur1		= $('#carto-indicateur-id-1').get(0).value; 
		indicateur2		= $('#carto-indicateur-id-2').get(0).value; 
	}
    
    $.ajax({ 
 		traditional: true, 
 		type: 'POST', 
 		url: './cartoRegion.do',
 		target: "_blank", 
 		data : {
 			idGeog: 			idGeogArg,
 			nivGeog:			nivGeog,
 			typeImage: 			typeImage,
 			source: 			source,
 			periode: 			periode,
 			unite:				unite,
 			indicateur:			indicateur,
 			indicateur1:		indicateur1,
 			indicateur2:		indicateur2,
 			calculPalettes:		calculPalettes
 		}, 
 		dataType: 'text',
 		error: function () {
 			alert('Erreur lors du chargement de la region'); 
 		},
 		success: function(result) { 
 			
 			if (result != '{"success":"error"}') { // pas d erreur dans la requete 
 			
	 			// CSS
	 			
	 			$("#loaderCanvasRegion").empty();
	 			
	 			$("#divRegion").css('border-style', 'solid');
	 			$("#divRegion").css('border-color', '#99BCE8');
	 			$("#divRegion").css('border-width', '1px');
	 			$("#divRegion").css('padding', '2px');
	 			
	 			$("#regionCanvasInfos").css('border-style', 'solid');
	 			$("#regionCanvasInfos").css('border-color', '#99BCE8');
	 			$("#regionCanvasInfos").css('border-width', '1px 1px 0px 1px');
	 			$("#regionCanvasInfos").css('padding', '2px');
	 			
	 			$("#divSecteur").css('border-style', 'solid');
	 			$("#divSecteur").css('border-color', '#99BCE8');
	 			$("#divSecteur").css('border-width', '1px 1px 1px 0px');
	 			$("#divSecteur").css('padding', '2px');
	 			
	 			$("#secteurCanvasInfos").css('border-style', 'solid');
	 			$("#secteurCanvasInfos").css('border-color', '#99BCE8');
	 			$("#secteurCanvasInfos").css('border-width', '1px 1px 0px 0px');
	 			$("#secteurCanvasInfos").css('padding', '2px');
	 			
	 			$("#regionCanvasInfos").css("display", "inline");
	 			$("#secteurCanvasInfos").css("display", "inline");
	 			
	 			// Affichage de l'image creee
	 			$("#regionCanvas").html('<img alt="Compatible IE9" id="imgRegionGenerated" src="data:image/' + typeImage + ';base64,' + result + '" />');
	 			
	 			// Affichage d'informations 
	 			afficheLibNiveauRegion();
	 			
	 			// Au clic sur l'image 
	 			$("#imgRegionGenerated").click(function(event) {
	 				if (!event.offsetX) { // Resolution d'un bug sous Firefox 
		 				event.offsetX = (event.pageX - $(event.target).offset().left);
		 				event.offsetY = (event.pageY - $(event.target).offset().top);
	 				}
	 				
	 				if ($('#analyseCartoHieId').get(0).checked) { // HIERARCHIQUE
	 					
	 					// CSS
		 				$('#loaderCanvasSecteur').html("<div align='center' style='padding-top:20px;'><div>Veuillez patienter ...</div><img src='img/world-loader.gif' style='padding-right:5px;' /></div>");
		 				$('#secteurCanvas').empty();
		 				$('#libNiveauId').html("");
		 				$('#secteurCanvasPmId').html("");
		 				$('#secteurCanvasDeltaPMId').html("");
		 				$('#secteurCanvasUga').html("");
			 			$('#secteurCanvasUgaPmId').html("");
			 			$('#secteurCanvasUgaDeltaPMId').html("");
			 			$('#secteurCanvasUgaVolId').html("");
			 			$('#secteurCanvasUgaDeltaVolId').html("");
			 			$('#secteurCanvasUgaEvolId').html("");
			 			$('#regionCanvasUga').html("");
			 			$('#regionCanvasUgaPmId').html("");
			 			$('#regionCanvasUgaDeltaPMId').html("");
			 			$('#regionCanvasUgaVolId').html("");
			 			$('#regionCanvasUgaDeltaVolId').html("");
			 			$('#regionCanvasUgaEvolId').html("");
		 				$('#secteurCanvasVolId').html("");
		 				$('#secteurCanvasDeltaVolId').html("");
		 				$('#secteurCanvasEvolId').html("");
	 					// On dessine la region ou le secteur sur la carto de droite 
		 				dessinerSecteur(nivGeog, idGeogArg, event.offsetX, event.offsetY, false, "true");
		 				
	 				} else if ($('#analyseCartoIsoId').get(0).checked) { // ISOGEOG
	 					
	 					// Gestion de l infobulleregion sur la carte  
	 	 	 			$("#imgRegionGenerated").mousemove(function(event) {
	 	 	 				if (!event.offsetX) { // Resolution d'un bug sous Firefox 
	 	 		 				event.offsetX = (event.pageX - $(event.target).offset().left);
	 	 		 				event.offsetY = (event.pageY - $(event.target).offset().top);
	 	 	 				}
	 	 	 				xpos = event.offsetX;
	 	 		 			ypos = event.offsetY;
	 	 		 			$("#infobulleregion").hide();
	 	 	 			});
	 	 	 			
	 	 	 			$("#imgRegionGenerated").mouseout(function() {
	 	 	 				$("#infobulleregion").hide();
	 	 	 			});
	 	 	 			
	 	 	 			$("#imgRegionGenerated").mousemove(_.debounce(function(){
	 	 					var x_pos = xpos; 
	 	 					var y_pos = ypos + 23;
	 	 					$('#infobulleregion').css({top: y_pos, left: x_pos});
	 	 					// Requete pour afficher l'infobulleregion
	 	 					$.ajax({ 
	 	 				 		traditional: true, 
	 	 				 		type: 'POST', 
	 	 				 		url: './cartoEvent.do', 
	 	 				 		target: "_blank", 
	 	 				 		data : {
	 	 				 			x: 			xpos,
	 	 				 			y: 			ypos,
	 	 				 			idGeog:		idGeogArg,
	 	 				 			nivGeog: 	nivGeog,
	 	 				 			source: 	source,
	 	 				 			unite:		unite,
	 	 				 			periode:	periode
	 	 				 		}, 
	 	 				 		error: function () {},
	 	 				 		success: function(result) { 
	 	 				 			if (result.uga != -2) {
	 	 				 				// Informations mises dans l'infobulleregion 
	 	 				 				var infoHtml = "&nbsp;<b>" + result.ugaName + "</b>&nbsp;";
	 	 				 				$("#infobulleregion").html(infoHtml);
	 	 				 				$("#infobulleregion").show();
	 	 				 			}
	 	 				 		}
	 	 				 	});
	 	 	 			}, 1000));
	 					
	 	 				var xpos = event.offsetX;
	 	 				var ypos = event.offsetY;
	 					// Requete 
	 					$.ajax({ 
	 				 		traditional: true, 
	 				 		type: 'POST', 
	 				 		url: './cartoEventClick.do', 
	 				 		target: "_blank", 
	 				 		data : {
	 				 			x: 			xpos,
	 				 			y: 			ypos,
	 				 			idGeog:		idGeogArg,
	 				 			nivGeog:	nivGeog,
	 				 			source: 	source,
	 				 			unite:		unite,
	 				 			periode:	periode
	 				 		}, 
	 				 		error: function () {},
	 				 		success: function(result) {
	 				 			$("#infobulleregion").hide();
	 				 			$("#infobulle").hide();
 				 				if (result.pm == "") {
 	 				 				$('#secteurCanvasUga').html("");
 	 					 			$('#secteurCanvasUgaPmId').html("");
 	 					 			$('#secteurCanvasUgaDeltaPMId').html("");
 	 					 			$('#secteurCanvasUgaVolId').html("");
 	 					 			$('#secteurCanvasUgaDeltaVolId').html("");
 	 					 			$('#secteurCanvasUgaEvolId').html("");
 	 					 			$('#regionCanvasUga').html("");
 	 					 			$('#regionCanvasUgaPmId').html("");
 	 					 			$('#regionCanvasUgaDeltaPMId').html("");
 	 					 			$('#regionCanvasUgaVolId').html("");
 	 					 			$('#regionCanvasUgaDeltaVolId').html("");
 	 					 			$('#regionCanvasUgaEvolId').html("");
 	 				 			} else {
 	 				 				$('#secteurCanvasUga').html("UGA : " + result.uga);
 	 					 			$('#secteurCanvasUgaPmId').html("PM " + parseFloat(result.pm).toFixed(1) + " - ");
 	 					 			$('#secteurCanvasUgaDeltaPMId').html("&Delta;PM " + parseFloat(result.deltapm).toFixed(1) + " - ");
 	 					 			$('#secteurCanvasUgaVolId').html("VOL " + parseFloat(result.vol).toFixed(0) + " - ");
 	 					 			$('#secteurCanvasUgaDeltaVolId').html("&Delta;VOL " + parseFloat(result.deltavol).toFixed(0) + " - ");
 	 					 			$('#secteurCanvasUgaEvolId').html("EVOL " + parseFloat(result.evol).toFixed(1));
 	 					 			$('#regionCanvasUga').html("UGA : " + result.uga);
 	 					 			$('#regionCanvasUgaPmId').html("PM " + parseFloat(result.pm).toFixed(1) + " - ");
 	 					 			$('#regionCanvasUgaDeltaPMId').html("&Delta;PM " + parseFloat(result.deltapm).toFixed(1) + " - ");
 	 					 			$('#regionCanvasUgaVolId').html("VOL " + parseFloat(result.vol).toFixed(0) + " - ");
 	 					 			$('#regionCanvasUgaDeltaVolId').html("&Delta;VOL " + parseFloat(result.deltavol).toFixed(0) + " - ");
 	 					 			$('#regionCanvasUgaEvolId').html("EVOL " + parseFloat(result.evol).toFixed(1));
 	 				 			}
	 				 			var id = result.idGeog;
	 				 			if (id != '-2' && id != '-1') {
	 				 				// Gestion de l'arbre de navigation 
	 					 			$('#myTree').jstree('deselect_all');
	 					 			if (nivGeog == 'Zone') {
		 						  		$("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children("a").addClass("jstree-clicked");
		 					 			$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().parent().parent().parent().children("a"));
		 						  		$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children("a")); 
		 						  		$("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children("a").click();
		 						  		// Gestion des variables globales 
		 						  		globalNivGeog = "Region";
		 						  		globalGeog = $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children('a').get(0).text.trim();
		 						  		idGeog = $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().children('a').get(0).id.split('-')[0];
	 					 			} else if (nivGeog == 'Region') {
	 					 				$("#" + result.idGeog + "-UGA").parent().parent().parent().children("a").addClass("jstree-clicked");
		 					 			$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().parent().parent().parent().children("a"));
		 						  		$('#myTree').jstree("open_node", $("#" + result.idGeog + "-UGA").parent().parent().parent().children("a")); 
		 						  		$("#" + result.idGeog + "-UGA").parent().parent().parent().children("a").click();
		 						  		// Gestion des variables globales 
		 						  		globalNivGeog = "Secteur";
		 						  		globalGeog = $("#" + result.idGeog + "-UGA").parent().parent().parent().children('a').get(0).text.trim();
		 						  		idGeog = $("#" + result.idGeog + "-UGA").parent().parent().parent().children('a').get(0).id.split('-')[0];
	 					 			}
	 				 			}
	 				 		}
	 				 	});
	 					
	 				}
				});
	 			
 			} else if (result == '{"success":"error"}' && firstReloadCartoRegion == 0) { // Relance le dessin de la carto a la region 
 				firstReloadCartoRegion++;
 				dessinerRegion(nivGeog, idGeogArg, calculPalettes);
 			}
 			
 		} 
 		
 	});
    
}
